package ${daoPkg};
import java.util.List;
<#if domainPkg?? >
import ${domainPkg}.${name?cap_first}Entity;
import ${domainPkg}.${name?cap_first}Query;
<#else>
import ${defaultPkg}.domain.${name?lower_case}.${name?cap_first}Entity;
import ${defaultPkg}.domain.${name?lower_case}.${name?cap_first}Query;
</#if>
<#assign gentime = .now>
/**
*${name}模块对应的数据接口
*@since ${gentime?string['yyyy-MM-dd HH:mm']}
*@author autogen
*/
public interface ${name?cap_first}Mapper{

	/**
	*查询${name}详情
	*@param ${pkCol.column_alias} pk
	*/
	public ${name?cap_first}Entity get${name?cap_first}ByID(${pkCol.data_type} ${pkCol.column_alias});
<#if showStyle=="TREE"||showStyle=="TREE_TABLE">
	/**
	 * 查询${name?cap_first}的子节点
	 * @param  ${pkCol.column_alias} 主键
	 * @return 子集合
	 */
	public List<${name?cap_first}Entity> get${name?cap_first}Childrens(${pkCol.data_type} ${pkCol.column_alias} );
</#if>
	/**
	 * 根据条件查询 
	 * @param query 条件对象
	 * @return  集合
	 */
	public List<${name?cap_first}Entity> get${name?cap_first}List(${name?cap_first}Query query);
		/**
	 * 根据条件查询 
	 * @param query 条件对象
	 * @return  集合
	 */
	public List<${name?cap_first}Entity> get${name?cap_first}All(${name?cap_first}Query query);
	/**
	 * 根据条件查询总数
	 * @param query 条件对象
	 * @return 数量
	 */
	public int get${name?cap_first}Count(${name?cap_first}Query query);
	/**
	 * 保存 
	 * @param entity 对象
	 */
	public void save${name?cap_first}(${name?cap_first}Entity entity) ;
	/**
	 * 更新 
	 * @param entity 对象
	 */
	public void update${name?cap_first}(${name?cap_first}Entity entity) ;
	/**
	 * 删除
	 * @param id 
	 * @throws BzException
	 */
	 public void delete${name?cap_first}(${pkCol.data_type}[] ${pkCol.column_alias}) ;
}